#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>
#include<string>

#include"AVLTree.hpp"

using std::cout;
using std::cin;
using std::endl;
using std::make_pair;

#include<time.h>

int main() 
{
	srand(time(NULL));
	AVLTree<int,int> avl1;
	avl1.Insert(make_pair(1, 0));
	avl1.Insert(make_pair(2, 0));
	avl1.Insert(make_pair(3, 0));
	avl1.Insert(make_pair(4, 0));
	avl1.Insert(make_pair(5, 0));
	avl1.Insert(make_pair(6, 0));
	avl1.Insert(make_pair(7, 0));
	if (!avl1.IsAVLTree())
		cout << "is not avlTree" << endl;
	//int a[] = { 4, 2, 6, 1, 3, 5, 15, 7, 16, 14 };

	/*AVLTree<int,int> avl2;
	avl2.Insert(make_pair(9, 0));
	avl2.Insert(make_pair(8, 0));
	avl2.Insert(make_pair(7, 0));
	avl2.Insert(make_pair(6, 0));
	avl2.Insert(make_pair(5, 0));
	avl2.Insert(make_pair(4, 0));
	avl2.Insert(make_pair(3, 0));
	avl2.Insert(make_pair(2, 0));
	avl2.Insert(make_pair(1, 0));*/

	AVLTree<int, int> avl2;
	avl2.Insert(make_pair(5, 0));
	avl2.Insert(make_pair(4, 0));
	avl2.Insert(make_pair(3, 0));
	avl2.Insert(make_pair(2, 0));
	avl2.Insert(make_pair(1, 0));
	avl2.Insert(make_pair(9, 0));
	avl2.Insert(make_pair(8, 0));
	avl2.Insert(make_pair(7, 0));
	avl2.Insert(make_pair(6, 0));
	if (!avl2.IsAVLTree())
		cout << "is not avlTree" << endl;

	AVLTree<int, int> avl;
	for (int i = 0; i <= 10000; i++)
	{
		avl.Insert(make_pair(rand()%10000, 0));
		if (avl.IsAVLTree()&&i%1000==0)
			cout << "is avlTree" << endl;
	}
	return 0;
}